﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Markup;
using System.Security.Principal;
using System.Windows.Resources;
using System.Collections;
using System.Text.RegularExpressions;

namespace CMD_DKT.Sol
{
    public class UIValidar
    {
      
        public UIValidar(TextBox tEmail, TextBox tRFC, TextBox tTelFiscal, TextBox tTelEnt, TextBox tTelDPV, TextBox tMailDPV)
        {

           ValidarEmail(tEmail);
           ValidarEmail(tMailDPV);
         
           ValidarTelefono(tTelFiscal);
           ValidarTelefono(tTelEnt);
           ValidarTelefono(tTelDPV);
           ValidarRFC(tRFC);
             

        }


        public void ValidarRFC(TextBox tRFC1)
        {
            if (tRFC1.Text.Length == 0)
            {
                MessageBox.Show("El campo RFC no puede estar vacío", "Campo Vacío", MessageBoxButton.OK, MessageBoxImage.Error);
                tRFC1.Background = new SolidColorBrush(Colors.Red);
            }
            else
            {
                if (Regex.IsMatch(tRFC1.Text, @"^([A-Z\s]{4})\d{6}([A-Z\w]{3})$"))
                {
                    tRFC1.Background = new SolidColorBrush(Colors.White);
                    //MessageBox.Show("RFC válido");
                    //tRFC1.Focus();
                }
                else
                {
                    MessageBox.Show("Teclee un RFC válido", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
                    tRFC1.Background = new SolidColorBrush(Colors.Red);
                }
            }

        }

        
        public void ValidarEmail(TextBox tEmail1)
        {
            if (tEmail1.Text.Length==0)
            {
                MessageBox.Show("El campo Email no puede estar vacío", "Campo vacío", MessageBoxButton.OK, MessageBoxImage.Error);
                tEmail1.Background = new SolidColorBrush(Colors.Red);
            }
          
            else
            {
                string expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";

                if (Regex.IsMatch(tEmail1.Text, expresion))
                {
                    if (Regex.Replace(tEmail1.Text, expresion, String.Empty).Length == 0)
                    {
                        tEmail1.Background = new SolidColorBrush(Colors.White);
                       // MessageBox.Show("Email válido");
                       
                    }
                    else
                    {
                        MessageBox.Show("Teclee un Email válido", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
                        SolidColorBrush fail = new SolidColorBrush(Colors.Red);
                        tEmail1.Background = fail;
                    }
                }
                else
                {
                    MessageBox.Show("Teclee un Email válido", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
                    SolidColorBrush fail = new SolidColorBrush(Colors.Red);
                    tEmail1.Background = fail;
                }
            }
                  
        }

               
        public void ValidarTelefono(TextBox tTelefono)
        {
            if (tTelefono.Text.Length == 0)
            {
                MessageBox.Show("El campo Teléfono no puede estar vacío", "Campo vacío", MessageBoxButton.OK, MessageBoxImage.Error);
                tTelefono.Background = new SolidColorBrush(Colors.Red);
            }
            
            else
            {
                String TxtBxs = tTelefono.Text;
                if (tTelefono.Text.Length > 7)
                {
                    foreach (char car in TxtBxs)
                    {
                        if (car < '0' || car > '9')
                        {
                            MessageBox.Show("El teléfono debe incluir sólo números", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }

                        else { tTelefono.Background = new SolidColorBrush(Colors.White); }
                    }
                }

                else
                {
                    MessageBox.Show("El teléfono debe incluir 8 números como mínimo", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    SolidColorBrush colorfalla = new SolidColorBrush(Colors.Red);
                    tTelefono.Background = colorfalla;
                }
            }

        }
              
    }
}